数字图像处理(入门篇)七 图像数据预处理之灰度变化 您所在的位置:网站首页 python 白色校正 数字图像处理(入门篇)七 图像数据预处理之灰度变化

数字图像处理(入门篇)七 图像数据预处理之灰度变化

2023-02-22 00:47| 来源: 网络整理| 查看: 265

目录

一 常用操作

1 反转

2 对比度增强

3 对比度压缩

4 伽马矫正

二 实践

1 反转、对比度增强和对比度压缩

(1) 代码 

(2) 结果图

 2 伽马矫正

(1) 代码

(2) 结果图

(3) 结论

(4) np.power函数

图像灰度变换:将原始图像中的每一个点的灰度值,按照特定的映射函数,变换为另一个灰度值的过程。

灰度变换是对每一个像素点单独的操作。像素点原始像素值为x,灰度变换映射函数为T(x),变换后的像素值为y,公式为:y = T(x)

常用的操作有:反转、 对比度增强、对比度压缩和 伽马矫正。

一 常用操作 1 反转

将图像灰度值反转的操作,即黑色变成白色,白色变成黑色的过程。

映射函数如下:

2 对比度增强

通过增加相邻灰度级的灰度差别实现。

映射函数如下: 

 从上图可以看出,(d2 - d1)> (s2 - s1),[s1, s2]区间的像素点被拉伸到 [d1, d2]区间,达到了对比度增强的效果。

3 对比度压缩

通过减小相邻灰度级的灰度差别实现。

映射函数如下:

 从上图可以看出,(d2 - d1)< (s2 - s1),[s1, s2]区间的像素点被压缩到 [d1, d2]区间,达到了对比度压缩的效果。 

4 伽马矫正

伽马矫正:借助了指数变换映射的增强技术。公式如下:

 

 

二 实践 1 反转、对比度增强和对比度压缩 (1) 代码 

使用 OpenCV 的 look up table 函数(cv2.LUT)修改图像的灰度值。

import numpy as np import matplotlib.pyplot as plt import cv2 def linear_trans_img(img, k, b=0): trans_list = [(np.float32(x)*k+b) for x in range(256)] trans_table = np.array(trans_list) trans_table[trans_table > 255] = 255 trans_table[trans_table < 0] = 0 trans_table = np.round(trans_table).astype(np.uint8) return cv2.LUT(img, trans_table) def run(img_path): img = cv2.imread(img_path, 0) reversal_img = linear_trans_img(img, -1, 255)# 反转 stretch_img = linear_trans_img(img, 1.5)# k>1,拉伸 compress_img = linear_trans_img(img, 0.5)# K


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有